import { configureStore, createSlice } from '@reduxjs/toolkit'
// countSlice我们称之为切片.其实就是将reducer函数和actionCreator的代码合并在一起
const countSlice = createSlice({
  name: 'count', // slice的名称,为了修改数据时,作为type的一部分
  initialState: { c: 1, msg: 'hello' }, //初始化数据
  reducers: {
    // 这个花括号中写的内容,相当于写reducer函数中的case,只不过要写成函数的形式
    add: function (state, action) {
      state.c = state.c + action.payload
    },
    sub: function (state, action) {
      state.c = state.c - 1
    },
  },
})

// 创建store对象

const store = configureStore({
  reducer: {
    // 默认就是合并reducer的写法
    xxx: countSlice.reducer, // slice对象.reducer返回自动生成的reducer函数
  },
})

export default store
export const { add, sub } = countSlice.actions

// 注意: actionCreator的结构: {type: '', payload: 值}
// const { add, sub } = countSlice.actions
// // console.log(add(3))
// console.log(store.getState())
// store.dispatch(add(3))
// console.log(store.getState())
